<!--#include file="../../Include/conn.asp" -->
<%
' 功能：支付宝服务器异步通知页面
'////////////////////////////////////////
%>
<style>
.mbox{width:600px; height:200px; position:absolute; left:50%; top:50%; margin-left:-300px; margin-top:-100px;background:#edffcd; border:1px #9bdb51 solid}
.mbox .cgbox{height:80px;border-bottom:1px #CCCCCC solid}
.mbox .cgbox p{width:360px; padding-left:50px; font-size:30px;line-height:42px; margin:40px auto 20px auto; background:url(/alipay/images/gxico.png) no-repeat;}
.mbox .xwbox{height:80px;border-bottom:1px #CCCCCC solid}
.mbox .xwbox p{width:360px; padding-left:50px; font-size:30px;line-height:42px; margin:40px auto 20px auto; background:url(/alipay/images/gxico.png) 0px -42px no-repeat;}
.mbox .body{ padding:10px; text-align:center; font-size:12px;}
.mbox .body span{font-weight:bold; padding-right:5px}
</style>
<!--#include file="class/alipay_notify.asp"-->

<%
'计算得出通知验证结果
Set objNotify = New AlipayNotify
sVerifyResult = objNotify.VerifyNotify()

if sVerifyResult then	'验证成功
	'*********************************************************************
	'请在这里加上商户的业务逻辑程序代码

	'——请根据您的业务逻辑来编写程序（以下代码仅作参考）——
    '获取支付宝的通知返回参数，可参考技术文档中服务器异步通知参数列表

	'商户订单号
	out_trade_no = Request.Form("out_trade_no")
	'支付宝交易号
	trade_no = Request.Form("trade_no")
	'交易状态
	trade_status = Request.Form("trade_status")
	
	Private Sub Handle(zt)
		set db=conn.execute("select * from [orders] where OrderNo='"&out_trade_no&"'")
		if db.eof and db.bof then
		   Response.Write""
		else
		  if db("state")<>zt then
			conn.execute("update orders set state='"&zt&"',alipayno='"&trade_no&"',code='"&trade_status&"' where OrderNo='"&out_trade_no&"'")
		  end if
	   end if
	End Sub	
	
	If Request.Form("trade_status") = "TRADE_FINISHED" Then
	 Call Handle(8)
		'判断该笔订单是否在商户网站中已经做过处理
		'如果没有做过处理，根据订单号（out_trade_no）在商户网站的订单系统中查到该笔订单的详细，并执行商户的业务程序
		'如果有做过处理，不执行商户的业务程序
			
		'注意：
		'该种交易状态只在两种情况下出现
		'1、开通了普通即时到账，买家付款成功后。
		'2、开通了高级即时到账，从该笔交易成功时间算起，过了签约时的可退款时限（如：三个月以内可退款、一年以内可退款等）后。
		
		Response.Write "success"	'请不要修改或删除
		
		'调试用，写文本函数记录程序运行情况是否正常
        'LogResult("这里写入想要调试的代码变量值，或其他运行的结果记录")
	ElseIf Request.Form("trade_status") = "TRADE_SUCCESS" Then '支付成功
	 Call Handle(8)
		'判断该笔订单是否在商户网站中已经做过处理
		'如果没有做过处理，根据订单号（out_trade_no）在商户网站的订单系统中查到该笔订单的详细，并执行商户的业务程序
		'如果有做过处理，不执行商户的业务程序
			
		'注意：
		'该种交易状态只在一种情况下出现——开通了高级即时到账，买家付款成功后。
		
		Response.Write "success"	'请不要修改或删除
		
		'调试用，写文本函数记录程序运行情况是否正常
        'LogResult("这里写入想要调试的代码变量值，或其他运行的结果记录")
	Else
		'其他状态判断。
		Call Handle(1)
		Response.Write "success"
		'调试用，写文本函数记录程序运行情况是否正常
		'LogResult ("这里写入想要调试的代码变量值，或其他运行的结果记录")
	End If
		Response.Write"<div class=""mbox"">"
		Response.Write"<div class=""cgbox""><p>您的订单，支付成功了！</p></div>"
		Response.Write"<div class=""body""><span>提示：</span>您已经成功付款,正在处理您的订单请勿关闭此自页面。处理完毕自动跳转！</div>"
		Response.Write"</div>"
	'——请根据您的业务逻辑来编写程序（以上代码仅作参考）——
	
	'*********************************************************************
else '验证失败
    response.Write "fail"
	  Response.Write"<div class=""mbox"">"
	  Response.Write"<div class=""xwbox""><p>您的订单，出了问题！</p></div>"
	  Response.Write"<div class=""body""><span>提示：</span>您的支付订单出了问题，如果您确实已经付款完成，请找到支付宝交易订单联系本站！</div>"
	  Response.Write"</div>"	
	'调试用，写文本函数记录程序运行情况是否正常
	'LogResult("这里写入想要调试的代码变量值，或其他运行的结果记录")
end if
%>